#ifndef GRAMMAR_H
#define GRAMMAR_H

#include <vector>
#include "global.h"
#include "rule.h"

namespace fouine
{

class Result;

class Grammar
{
  public:
    Grammar(const Grammar&);
    Grammar(const std::vector<Rule>& rules_);
    Result analyze(const String&) const;
    void setMaxLength(int);
    int maxLength() const;
  private:
  	Grammar();
    std::vector<Rule> _rules;
    int _max_length;
};



}

#endif // GRAMMAR_H
